package com.cx.stream;

import javax.print.attribute.standard.Chromaticity;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * @author zhangshuai
 * @version V1.0
 * @Project Java2_26
 * @Package com.cx.stream
 * @Description:
 * @Date 2025/5/23 11:25
 */

public class StreamTest2 {
    //5、给定一个集合：
    //["黑龙江省-哈尔滨", "浙江省-杭州", "江西省-南昌", "浙江省-温州", "江西省-九江"]
    //将各个省份城市合并：
    //浙江省=[杭州, 温州]   String  String[] 或者是list集合
    //江西省=[南昌, 九江]
    //黑龙江省=[哈尔滨]
    //hashmap 中有合并方法
    public static void main(String[] args) {
        String[] strings = {"黑龙江省-哈尔滨", "浙江省-杭州", "江西省-南昌", "浙江省-温州", "江西省-九江"};
        HashMap<String, List<String>> citys = new HashMap<>();
        //进行分割
        for (String string : strings) {
            String[] split = string.split("-");
            //获取省份
            String provens = split[0];
            //获取城市
            List<String> city = new ArrayList<>();
            city.add(split[1]);

//            citys.merge(provens,city,(s1,s2)-> {s1.addAll(s2);return s1;} );
           // 将provens和city两个集合合并到citys集合中，如果遇到相同的key，则将两个集合的元素合并为一个集合
            //s1是原来的集合，s2是新的集合
            citys.merge(provens, city, (s1, s2) ->Stream.concat(s1.stream(),s2.stream()).collect(Collectors.toList())); }
//          if(citys.containsKey(provens)){
//              citys.get(provens).addAll(city);
//          }else {
//              citys.put(provens,city);}
//        }
            System.out.println(citys);
            citys.entrySet().stream().forEach(System.out::println);

        }

    }
